package com.yueny.study.db.kernel.join.data.row;

import com.yueny.study.db.kernel.join.data.column.Column;
import com.yueny.study.db.kernel.join.data.value.Value;
import lombok.Builder;
import lombok.Getter;
import lombok.ToString;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 行数据
 *
 * @author fengyang
 * @date 2023/10/27 下午3:18
 * @see <a href="yueny09@163.com">mailTo: yueny09@163.com</a>
 */
@Getter
@Builder
@ToString
public class Row
{
    /**
     * 列信息
     */
    private List<Column> columns;

    /**
     * 列数据
     */
    private List<Value> values;

    /**
     * 主键列(可能为联合主键)
     */
    private List<String> pkColumnList;

    public Map<String, Column> getColumnMap() {
        return columns.stream()
                .collect(
                        Collectors.toMap(
                                Column::getColumnName,
                                c -> c,
                                (k1, k2) -> k1)//如果id相同，取第1个
                );
    }
}
